package com.wutong.xsxx.jbxx.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.wutong.common.annotation.Excel;
import com.wutong.common.core.domain.BaseEntity;

import javax.validation.constraints.Pattern;

/**
 * 基本信息对象 xsxx_jbxx
 * 
 * @author wutong
 * @date 2025-05-15
 */
public class Jbxx extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 基本信息 */
    private String jbxxId;

    /** 学生照片 */
    @Excel(name = "学生照片")
    private String xsZp;

    /** 姓名 */
    @Excel(name = "姓名")
    private String xm;

    /** 性别 */
    @Excel(name = "性别")
    private String xb;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scRq;

    /** 民族 */
    @Excel(name = "民族")
    private String mz;

    /** 政治面貌 */
    @Excel(name = "政治面貌")
    private String zzMm;

    @Excel(name = "身份证号")
    @Pattern(
            regexp = "^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$",
            message = "身份证号格式不合法"
    )
    private String sfZh;
    /** 联系 混合校验手机号或者固定电话  hu*/
    @Excel(name = "联系方式")
    @Pattern(
            regexp = "^(1[3-9]\\d{9}|0\\d{2,3}-\\d{7,8}(-\\d{1,6})?)$",
            message = "联系方式格式不合法"
    )
    private String lxFs;
    /** 家庭住址 */
    @Excel(name = "家庭住址")
    private String jtZz;

    /** 用户ID */
    private Long userId;

    /** 部门ID */
    private Long deptId;

    public void setJbxxId(String jbxxId) 
    {
        this.jbxxId = jbxxId;
    }

    public String getJbxxId() 
    {
        return jbxxId;
    }

    public void setXsZp(String xsZp) 
    {
        this.xsZp = xsZp;
    }

    public String getXsZp() 
    {
        return xsZp;
    }

    public void setXm(String xm) 
    {
        this.xm = xm;
    }

    public String getXm() 
    {
        return xm;
    }

    public void setXb(String xb) 
    {
        this.xb = xb;
    }

    public String getXb() 
    {
        return xb;
    }

    public void setScRq(Date scRq) 
    {
        this.scRq = scRq;
    }

    public Date getScRq() 
    {
        return scRq;
    }

    public void setMz(String mz) 
    {
        this.mz = mz;
    }

    public String getMz() 
    {
        return mz;
    }

    public void setZzMm(String zzMm) 
    {
        this.zzMm = zzMm;
    }

    public String getZzMm() 
    {
        return zzMm;
    }

    public void setSfZh(String sfZh) 
    {
        this.sfZh = sfZh;
    }

    public String getSfZh() 
    {
        return sfZh;
    }

    public void setLxFs(String lxFs) 
    {
        this.lxFs = lxFs;
    }

    public String getLxFs() 
    {
        return lxFs;
    }

    public void setJtZz(String jtZz) 
    {
        this.jtZz = jtZz;
    }

    public String getJtZz() 
    {
        return jtZz;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("jbxxId", getJbxxId())
            .append("xsZp", getXsZp())
            .append("xm", getXm())
            .append("xb", getXb())
            .append("scRq", getScRq())
            .append("mz", getMz())
            .append("zzMm", getZzMm())
            .append("sfZh", getSfZh())
            .append("lxFs", getLxFs())
            .append("jtZz", getJtZz())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .toString();
    }
}
